﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace OEMS
{
    /// <summary>
    /// Databaseklasse van belasting
    /// </summary>
    /// <author>Ronald Geladé</author>
    public static class BelastingDB
    {
        /// <summary>
        /// Geeft een list van alle belastingen uit de database terug
        /// </summary>
        /// <returns>List van alle belastingen uit de database</returns>
        /// <author>Ronald Geladé</author>
        public static List<Belasting> GetBelastingen()
        {
            List<Belasting> belastingList = new List<Belasting>();
            SqlConnection connection = OemsDB.GetConnection();
            string selectStatement =
                "SELECT Type, Datum_ingebruikname, GegevensID  " +
                "FROM Gegevens_Belasting";
            SqlCommand selectCommand = new SqlCommand(selectStatement, connection);

            try
            {
                connection.Open();
                SqlDataReader reader = selectCommand.ExecuteReader();
                while (reader.Read())
                {
                    Belasting belasting = new Belasting();
                    belasting.Type = reader["Type"].ToString();
                    belasting.Ingebruikname = (DateTime)reader["Datum_ingebruikname"];
                    belasting.GegevensId = (int)reader["GegevensID"];
                    belastingList.Add(belasting);
                }
            }
            catch (SqlException ex)
            {
                throw ex;
            }
            finally
            {
                connection.Close();
            }

            return belastingList;
        }

        /// <summary>
        /// Geeft een belasting terug adhv een gegevensId
        /// </summary>
        /// <param name="gegevensId">GegevensId van de belasting</param>
        /// <returns>Een belasting</returns>
        /// <author>Ronald Geladé</author>
        public static Belasting GetBelastingFromId(int gegevensId)
        {
            Belasting belasting = new Belasting();
            SqlConnection connection = OemsDB.GetConnection();
            string selectStatement =
                "SELECT Type, Datum_ingebruikname, GegevensID  " +
                "FROM Gegevens_Belasting " + 
                "WHERE GegevensID = " + gegevensId;
            SqlCommand selectCommand = new SqlCommand(selectStatement, connection);

            try
            {
                connection.Open();
                SqlDataReader reader = selectCommand.ExecuteReader();
                while (reader.Read())
                {
                    belasting.Type = reader["Type"].ToString();
                    belasting.Ingebruikname = (DateTime)reader["Datum_ingebruikname"];
                    belasting.GegevensId = (int)reader["GegevensID"];
                }
            }
            catch (SqlException ex)
            {
                throw ex;
            }
            finally
            {
                connection.Close();
            }

            return belasting;
        }
    }
}
